﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//try catch finary  抛异常,以Prase为例   throw
//做算法题时每一道写一个总结
//迭代器

//namespace shh
//{
//    class Program
//    {
//        //委托
//        static void Main(string[] args)
//        {
//           Calculator calculator = new Calculator();

//            //无参数传递且返回值为void   action委托
//            Action action = new Action(calculator.Test);
//            action.Invoke();  
//            action();

//            //除去Action外    Func委托
//            Func<int,int,int> func=new Func<int, int, int>(calculator.Sub);
//            Console.WriteLine(calculator.Sub(100, 200));
//            Console.WriteLine(func(100, 200));

//            Func<int, int, double> func2 = new Func<int, int, double>(calculator.Add);
//            Console.WriteLine(calculator.Add(100, 200));
//            Console.WriteLine(func2(100, 200));
//            var num = func2(100, 200);
//            Console.WriteLine(num.GetType().FullName);
//        }
//    }
//    class Calculator
//    {
//        public void Test()
//        {
//            Console.WriteLine("Hello");
//        }
//        public int Test1()
//        {
//            return 1;

//        }
//        public double Add(int x,int y)
//        {
//            return (double)x + y;
//        }
//        public int Sub(int x, int y)
//        {
//            return x - y;
//        }
//        public int Mul(int x, int y)
//        {
//            return x * y;
//        }
//        public int Div(int x, int y)
//        {
//            return x / y;
//        }
//    }
//}

//namespace shh
//{
//    class Program
//    {

//        static void Main(string[] args)
//        {
//            //string s = Console.ReadLine();
//            ////抛异常
//            //try
//            //{
//            //    //Parse 转化不能隐式类型转化的类型   string->int/double
//            //    double num = double.Parse(s);
//            //    //double num2 = double.Parse("hhhh");
//            //    if (num < 60) Console.WriteLine("falied");
//            //    else Console.WriteLine("Pass");

//            //}
//            //catch 
//            //{
//            //    Console.WriteLine("Not a number");
//            //}
//        }
//    }   
//}

//迭代器
namespace shh
{
    class Program
    {

        static void Main(string[] args)
        {
            //int[] intArray = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8 };

            ////Console.WriteLine(intArray.GetType().FullName);
            //foreach (var item in intArray)
            //{
            //    Console.WriteLine(item);
            //}

            List<string> list = new List<string>() { "first", "third" };
            IEnumerator<string> ie = list.GetEnumerator();
            while (ie.MoveNext())
            {
                Console.WriteLine(ie.Current);
            }

            ie.Reset();
            while (ie.MoveNext())
            {
                Console.WriteLine(ie.Current);
            }

            foreach (string s in list)
            {
                Console.WriteLine(s);
            }
            
        }
    }
}